package Shuffle;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Cards {

    //4个花色，每个花色13张牌
    public static final String[] suits={"♥","♠","♣","♦"};

    //有一副牌
    public List<Card> buyCard() {
        List<Card> cardList=new ArrayList<>();
        for(int i=0;i<4;i++) {
            for(int j=1;j<=13;j++) {
                int rank=j;
                String suit=suits[i];
                Card card=new Card(rank,suit);//生成了一张牌
                cardList.add(card);//加到cardList中
            }
        }
        return cardList;
    }

    public void shuffle(List<Card> cardList) {
        //随机打乱,怎么打乱？交换rank
        Random random=new Random();
        for(int i=cardList.size()-1;i>0;i--) {
            int ranIndex=random.nextInt(i);//根据当前下标生成一个随机下标，与之交换
            swap(cardList,i,ranIndex);
        }
    }

    private void swap(List<Card> cardList,int i,int j) {
        /*
         *Card tmp = cardList[i];
         *cardList[i] = cardList[j];
         *cardList[j] = tmp;
         */
        Card tmp=cardList.get(i);
        cardList.set(i,cardList.get(j));
        cardList.set(j,tmp);
    }

    //揭牌
    public void drawCard(List<Card> cardList) {
        //每个人抓的牌放到哪里？，一个人一个list
        List<Card> hand1=new ArrayList<>();
        List<Card> hand2=new ArrayList<>();
        List<Card> hand3=new ArrayList<>();
        List<List<Card>> hands=new ArrayList<>();
        hands.add(hand1);
        hands.add(hand2);
        hands.add(hand3);
        //3个人轮流抓5张牌
        for(int i=0;i<5;i++) {  //轮数
            for(int j=0;j<3;j++) {  //三个人轮流
                //怎么抓牌？
                Card card=cardList.remove(0);//每次抓的牌都是下标为0的那张
                //抓的牌如何放进对应list中？
                hands.get(j).add(card);
            }
        }
        System.out.println("第一个人的牌"+hand1);
        System.out.println("第一个人的牌"+hand2);
        System.out.println("第一个人的牌"+hand3);
    }
}
